package com.eastfair.venueservice.service;

import com.eastfair.transport.dto.BindServiceProviderRoleDTO;
import com.eastfair.transport.dto.RemoveServiceProviderRoleDTO;
import com.eastfair.venueservice.entity.ServiceProvider;
import com.eastfair.venueservice.enumeration.ServiceProviderRoleEnum;

import java.util.List;

/**
 * 主场注册服务.
 *
 * @author dqq
 * @date 2022 /8/10
 */
public interface VenueManageTransportRegisterService {

    /**
     * 绑定主场服务商角色.
     *
     * @param bindHomeServiceProviderRoleDTO the bind home service provider role dto
     * @return the boolean
     */
    boolean bindServiceProviderRole(BindServiceProviderRoleDTO bindHomeServiceProviderRoleDTO);

    /**
     * 绑定主场服务商角色.
     *
     * @param userId              the user id
     * @param serviceProviderId   the service provider id
     * @param serviceProviderRole the service provider role
     * @return the boolean
     */
    boolean bindServiceProviderRole(Long userId, Long serviceProviderId, String serviceProviderName, String serviceProviderRole);

    /**
     * 移除主场服务商角色.
     *
     * @param removeHomeServiceProviderRoleDTOList the remove home service provider role dto list
     * @return the boolean
     */
    boolean removeServiceProviderRole(List<RemoveServiceProviderRoleDTO> removeHomeServiceProviderRoleDTOList);

    /**
     * 移除角色.
     *
     * @param list                    the list
     * @param serviceProviderRoleEnum the service provider role enum
     * @return the boolean
     */
    boolean removeRole(List<ServiceProvider> list, ServiceProviderRoleEnum serviceProviderRoleEnum);
}